home *** CD-ROM | disk | FTP | other *** search
/ Pascal Super Library / Pascal Super Library (CW International)(1997).bin / DELPHI32 / AUDIO / AUDIO / MSACM32.PAS < prev    next >
Pascal/Delphi Source File  |  1996-08-05  |  3KB  |  100 lines

  1. unit msacm32;
  2.  
  3. interface
  4.  
  5. Uses mmsystem, windows;
  6.  
  7. Const
  8.   ACMFORMATDETAILS_FORMAT_CHARS   = 128;
  9.   WAVE_FORMAT_GSM610     = $0031;
  10.   ACM_FORMATENUMF_CONVERT          = $00100000;
  11. Type
  12.  
  13.  
  14. HACMDRIVERID = THANDLE;
  15. HACMDRIVER = THANDLE;
  16.  
  17. PACMFORMATDETAILSA = ^TACMFORMATDETAILSA;
  18. TACMFORMATDETAILSA = record
  19.     cbStruct : DWORD;
  20.     dwFormatIndex : DWORD;
  21.     dwFormatTag : DWORD;
  22.     fdwSupport : DWORD;
  23.     pwfx : PWAVEFORMATEX;
  24.     cbwfx : DWORD;
  25.     szFormat : array[0..ACMFORMATDETAILS_FORMAT_CHARS] of char;
  26. end;
  27.  
  28. TTRUESPEECHWAVEFORMAT = record
  29.         wfx : TWAVEFORMATEX    ;
  30.         wRevision : WORD;
  31.         nSamplesPerBlock : WORD;
  32.         abReserved : array[0..28] of BYTE;
  33. end;
  34.  
  35. PACMFORMATENUMCBA = ^TACMFORMATENUMCBA;
  36. TACMFORMATENUMCBA = function(
  37.     hadid : THANDLE;
  38.     pafd : PACMFORMATDETAILSA;
  39.     dwInstance,
  40.     fdwSupport : DWORD
  41. ) : BOOL stdcall;
  42. //  TFNDriverProc = function(dwDriverId: DWORD; hdrvr: HDRVR;
  43. //    msg: UINT; lparam1, lparam2: LPARAM): Longint stdcall;
  44.  
  45. //function acmFormatEnumCallback(hadid : THANDLE;pafd : PACMFORMATDETAILSA; dwInstance, fdwSupport : DWORD ):BOOL; stdcall;
  46. function acmFormatEnumA
  47. (
  48.     had : THANDLE;
  49.     pafd : PACMFORMATDETAILSA;
  50.     fnCallback : PACMFORMATENUMCBA;
  51.     dwInstance : DWORD;
  52.     fdwEnum : DWORD
  53. ) : MMRESULT; stdcall;
  54.  
  55. Const
  56.    ACM_METRIC_COUNT_DRIVERS            = 1;
  57.    ACM_METRIC_COUNT_CODECS             = 2;
  58.    ACM_METRIC_COUNT_CONVERTERS         = 3;
  59.    ACM_METRIC_COUNT_FILTERS            = 4;
  60.    ACM_METRIC_COUNT_DISABLED           = 5;
  61.    ACM_METRIC_COUNT_HARDWARE           = 6;
  62.    ACM_METRIC_COUNT_LOCAL_DRIVERS      = 20;
  63.    ACM_METRIC_COUNT_LOCAL_CODECS       = 21;
  64.    ACM_METRIC_COUNT_LOCAL_CONVERTERS   = 22;
  65.    ACM_METRIC_COUNT_LOCAL_FILTERS      = 23;
  66.    ACM_METRIC_COUNT_LOCAL_DISABLED     = 24;
  67.    ACM_METRIC_HARDWARE_WAVE_INPUT      = 30;
  68.    ACM_METRIC_HARDWARE_WAVE_OUTPUT     = 31;
  69.    ACM_METRIC_MAX_SIZE_FORMAT          = 50;
  70.    ACM_METRIC_MAX_SIZE_FILTER          = 51;
  71.    ACM_METRIC_DRIVER_SUPPORT           = 100;
  72.    ACM_METRIC_DRIVER_PRIORITY          = 101;
  73.  
  74.  
  75. function acmMetrics(hao : THandle; uMetric : UINT; pMetric : Pointer) : MMRESULT ; stdcall;
  76.  
  77. Const
  78.    ACM_FORMATDETAILSF_INDEX        = $00000000;
  79.    ACM_FORMATDETAILSF_FORMAT       = $00000001;
  80.    ACM_FORMATDETAILSF_QUERYMASK    = $0000000F;
  81.  
  82.  
  83. function acmFormatDetailsA(had : THandle;pafd : PACMFORMATDETAILSA;
  84.     fdwDetails : DWORD ) : MMRESULT ; stdcall;
  85.  
  86. implementation
  87.  
  88. Const
  89.   MSACM = 'msacm32';
  90. function acmFormatEnumA;
  91.  external MSACM  name 'acmFormatEnumA';
  92.  
  93. function acmMetrics;
  94.  external MSACM  name 'acmMetrics';
  95.  
  96. function acmFormatDetailsA;
  97.  external MSACM  name 'acmFormatDetailsA';
  98.  
  99. end.
  100.